<?php
/**
 * User: @lixu
 * Date: 2019-05-14
 * Time: 16:16
 */

namespace Biz\service\esSearch;

use Biz\module\Search\ObjRelateWikiSearch;
use Doraemon\tools\Log;
use Doraemon\cache\Queue;
use Doraemon\service\esSearch\Common;

class ObjRelateWiki
{
    /**
     * 上层代码控制要同步的数据
     * @param $wikiInfo
     * @return bool
     */
    public static function saveByWikiId($wikiInfo)
    {
        if(!$wikiInfo['id']) {
            return false;
        }

        $result = ObjRelateWikiSearch::save($wikiInfo);

        // 更新内容关联wiki的最近时间
        if (isset($wikiInfo["data"]["addtime"]) && isset($wikiInfo["data"]["wiki_id"]) && isset($wikiInfo["type"])) {
            if ($wikiInfo["type"] == Common::TYPE_ADD) {
                Wiki::saveWikiInfoByWikiId($wikiInfo["data"]["wiki_id"]);
            } else if ($wikiInfo["type"] == Common::TYPE_UPDATE) {
                $change_field = $wikiInfo["change_field"] ? : [];
                $isFieldChange = in_array('addtime', $change_field) || in_array('status', $change_field);
                if ($isFieldChange) {
                    Wiki::saveWikiInfoByWikiId($wikiInfo["data"]["wiki_id"]);
                }
            }
        };

//        if($result['code'] != 1) {
//            Queue::insertQueue("queue/Wechatnotice/toTag", [
//                "totag" => \Biz\pockets\constInterface\BizWechatTagConfig::TAG_BIZ_RD_SYSTEM,
//                "content" => 'goods表 同步数据失败 ' . $result
//            ], Queue::QUEUE_BIZ);
//        }

        return $result;
    }

    /**
     * 监听binlog同步数据
     * @param $list
     */
    public static function syncSave($list)
    {
        $result = ObjRelateWikiSearch::save($list['data']);
        return $result;
        Log::debug('wiki-debug', $result);

//        if($result['code'] != 1) {
//            Queue::insertQueue("queue/Wechatnotice/toTag", [
//                "totag" => \Biz\pockets\constInterface\BizWechatTagConfig::TAG_BIZ_RD_SYSTEM,
//                "content" => $list['table'] . '表 同步数据失败 ' . $result,
//                'addtime' => date("Y-m-d H:i:s")
//            ], Queue::QUEUE_BIZ);
//        }
    }
}